/**   
*
* @创建人：Liuyong   
* @创建时间：2013-10-31 下午03:58:58   
*    
*/ 
package com.crmsys.auth_framework.auth.service.impl;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.crmsys.auth_framework.auth.dao.IUserInfoDao;
import com.crmsys.auth_framework.auth.model.CUser;
import com.crmsys.auth_framework.auth.service.IUserInfoService;

/**   
 *
 * @描述：   
 * @创建人：Liuyong   
 * @创建时间：2013-10-31 下午03:58:58   
 * @修改人：Liuyong   
 * @修改时间：2013-10-31 下午03:58:58   
 * @修改备注：   
 * @version 1.0
 *    
 */
@Service
public class UserInfoServiceImpl implements IUserInfoService {
     
	@Autowired
	private IUserInfoDao iUserInfoDao;
	/**   
	*
	* @描述：   根据用户名查找用户，返回用户信息
	* @创建人：Liuyong   
	* @创建时间：2013-11-6 上午12:14:10   
	* @修改人：Liuyong   
	* @修改时间：2013-11-6 上午12:14:10   
	* @修改备注：   
	* @version 1.0
	*    
	*/ 
	public List<CUser> getUserInfo(String userName,String password) {
		List<CUser> list = iUserInfoDao.getUserByName(userName,password);
		return list;
	}
	/**   
	*
	* @描述：    根据用户id去检查该用户是否已被分配角色
	* @创建人：Liuyong   
	* @创建时间：2013-11-7 上午09:32:25   
	* @修改人：Liuyong   
	* @修改时间：2013-11-7 上午09:32:25   
	* @修改备注：   
	* @version 1.0
	*    
	*/ 
	public boolean getUserRoleIsExist(String id) {
		boolean isExit = iUserInfoDao.getUserRoleIsExist(id);
		return isExit;
	}
	/**   
	*
	* @描述：   根据用户ID查询角色列表
	* @创建人：Liuyong   
	* @创建时间：2013-11-11 下午11:45:06   
	* @修改人：Liuyong   
	* @修改时间：2013-11-11 下午11:45:06   
	* @修改备注：   
	* @version 1.0
	*    
	*/ 
	public List getUserRole(String id){
		List list = iUserInfoDao.getUserRole(id);
		List listRole = new ArrayList();
		Map map = null;
		int k = list.size();
		if(!list.isEmpty()&&k>0){
			for(int i=0;i<k;i++){
				Object obj[] = (Object[])list.get(i); 
				map = new HashMap();
				map.put("roleid",obj[0]);
				map.put("rolename", obj[1]);
				listRole.add(map);
			}
		}
		return listRole;
	}
	/**
     * 
    *@param roleid
    *@return
    * @描述：   根据角色id查找资源
    * @创建人：Liuyong   
    * @创建时间：2013-11-13 上午09:48:10   
    * @修改人：Liuyong   
    * @修改时间：2013-11-13 上午09:48:10   
    * @修改备注：   
    * @version 1.0
    *
     */
    public  Map<String,List> getResourceByRoleId(String roleid){
    	List list = iUserInfoDao.getResourceByRoleId(roleid);
    	List listParent = new ArrayList();
    	List listChild = new ArrayList();
    	Map<String,List> mapResource = new HashMap<String,List>();
    	Map map = null;
    	int k = list.size();
    	if(!list.isEmpty()&&k>0){
    		for(int i=0;i<k;i++){
    			Object[] obj = (Object[])list.get(i);
    			map = new HashMap();
    			if(obj[2]==null||obj[2]==""){
        			map.put("raid", obj[0]);//roleauth的id
        			map.put("name", obj[1]);
        			map.put("parentid", obj[2]);
        			map.put("link", obj[3]);
        			map.put("icon", obj[4]);
        			map.put("enname", obj[5]);
        			map.put("csid", obj[6]);//资源id
        			listParent.add(map);//父菜单
    			}else{
    				map.put("raid", obj[0]);//roleauth的id
        			map.put("name", obj[1]);
        			map.put("parentid", obj[2]);
        			map.put("link", obj[3]);
        			map.put("icon", obj[4]);
        			map.put("enname", obj[5]);
        			map.put("csid", obj[6]);//资源id
        			listChild.add(map);//子菜单
    			}
    		}
    		mapResource.put("listParent", listParent);
    		mapResource.put("listChild", listChild);
    	}
    	return mapResource;
    }
    /**
     * 
    *@param raid
    *@return
    * @描述：根据raid取出对应的action   
    * @创建人：Liuyong   
    * @创建时间：2013-11-15 下午09:37:23   
    * @修改人：Liuyong   
    * @修改时间：2013-11-15 下午09:37:23   
    * @修改备注：   
    * @version 1.0
    *
     */
    public String getActionsByRaid(String raid){
    	List list = iUserInfoDao.getActionsByRaid(raid);
    	String actions="";
    	if(!list.isEmpty()&&list.size()>0){
    		if(list.get(0)!=null){
        		actions = list.get(0).toString();
        	}
    	}
    	return actions;
    }
}
